↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
REACH_IN_GGGG(X, Y, Edges, Visited) → U1_GGGG(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Y, Edges, Visited) → MEMBER_IN_GG(.(X, .(Y, [])), Edges)
MEMBER_IN_GG(X, .(H, L)) → U5_GG(X, H, L, member_in_gg(X, L))
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Z, Edges, Visited) → MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
MEMBER1_IN_AG(X, .(H, L)) → U6_AG(X, H, L, member1_in_ag(X, L))
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → MEMBER_IN_GG(Y, Visited)
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_GGGG(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
REACH_IN_GGGG(X, Y, Edges, Visited) → U1_GGGG(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Y, Edges, Visited) → MEMBER_IN_GG(.(X, .(Y, [])), Edges)
MEMBER_IN_GG(X, .(H, L)) → U5_GG(X, H, L, member_in_gg(X, L))
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Z, Edges, Visited) → MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
MEMBER1_IN_AG(X, .(H, L)) → U6_AG(X, H, L, member1_in_ag(X, L))
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → MEMBER_IN_GG(Y, Visited)
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_GGGG(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
MEMBER1_IN_AG(.(H, L)) → MEMBER1_IN_AG(L)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PrologToPiTRSProof
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U3_GGGG(Z, Edges, Visited, Y, member_out_gg) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
U2_GGGG(Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])))) → U3_GGGG(Z, Edges, Visited, Y, member_in_gg(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(Z, Edges, Visited, member1_in_ag(Edges))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(y0, y1, .(x1, x2), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x1, x2), x0, U5_gg(member_in_gg(x0, x2)))
U2_GGGG(y0, y1, .(x0, x1), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x0, x1), x0, member_out_gg)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U3_GGGG(Z, Edges, Visited, Y, member_out_gg) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
U2_GGGG(y0, y1, .(x1, x2), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x1, x2), x0, U5_gg(member_in_gg(x0, x2)))
U2_GGGG(y0, y1, .(x0, x1), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x0, x1), x0, member_out_gg)
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(Z, Edges, Visited, member1_in_ag(Edges))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, member1_out_ag(x0))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, U6_ag(member1_in_ag(x1)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
U3_GGGG(Z, Edges, Visited, Y, member_out_gg) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, member1_out_ag(x0))
U2_GGGG(y0, y1, .(x1, x2), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x1, x2), x0, U5_gg(member_in_gg(x0, x2)))
U2_GGGG(y0, y1, .(x0, x1), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x0, x1), x0, member_out_gg)
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, U6_ag(member1_in_ag(x1)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U3_GGGG(z0, z1, .(z2, z3), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, z1, .(z2, .(z2, z3)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, member1_out_ag(x0))
U2_GGGG(y0, y1, .(x1, x2), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x1, x2), x0, U5_gg(member_in_gg(x0, x2)))
U2_GGGG(y0, y1, .(x0, x1), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x0, x1), x0, member_out_gg)
U3_GGGG(z0, z1, .(z2, z3), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, z1, .(z2, .(z2, z3)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, U6_ag(member1_in_ag(x1)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, member1_out_ag(x0))
U2_GGGG(y0, y1, .(x0, x1), member1_out_ag(.(y3, .(x0, [])))) → U3_GGGG(y0, y1, .(x0, x1), x0, member_out_gg)
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U3_GGGG(z0, z1, .(z2, z3), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, z1, .(z2, .(z2, z3)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, U6_ag(member1_in_ag(x1)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, member1_out_ag(x0))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U3_GGGG(z0, z1, .(z2, z3), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, z1, .(z2, .(z2, z3)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, U6_ag(member1_in_ag(x1)))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U3_GGGG(z0, z1, .(z2, z3), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, z1, .(z2, .(z2, z3)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y1, .(x0, x1), y3, U6_ag(member1_in_ag(x1)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U3_GGGG(z0, z1, .(z2, z3), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, z1, .(z2, .(z2, z3)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U3_GGGG(z0, z1, .(z2, z3), z5, member_out_gg) → REACH_IN_GGGG(z5, z0, z1, .(z5, .(z2, z3)))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z4), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z4)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x5, [])))) → U3_GGGG(z1, .(.(x4, .(x5, [])), z3), .(x2, x3), x5, U5_gg(member_in_gg(x5, x3)))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(z1, .(.(x1, .(x2, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x1, .(x2, [])))) → U3_GGGG(z1, .(.(x1, .(x2, [])), z3), .(z0, .(z4, z5)), x2, U5_gg(member_in_gg(x2, .(z4, z5))))
U2_GGGG(z1, .(.(x1, .(x2, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x1, .(x2, [])))) → U3_GGGG(z1, .(.(x1, .(x2, [])), z3), .(z0, .(z0, z4)), x2, U5_gg(member_in_gg(x2, .(z0, z4))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(z2, z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U2_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), member1_out_ag(.(x4, .(x2, [])))) → U3_GGGG(z1, .(.(x4, .(x2, [])), z3), .(x2, x3), x2, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
U2_GGGG(z1, .(.(x1, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x1, .(z0, [])))) → U3_GGGG(z1, .(.(x1, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U2_GGGG(z1, .(.(x1, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x1, .(z0, [])))) → U3_GGGG(z1, .(.(x1, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ PrologToPiTRSProof
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), member1_out_ag(x2))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_6, .(y_7, []))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ PrologToPiTRSProof
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_6, .(y_7, []))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), member1_out_ag(x2))
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x0, x4))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x0, x4)), member1_out_ag(.(y_6, .(y_7, []))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_6, .(y_7, []))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x0, x4))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x0, x4)), member1_out_ag(.(y_6, .(y_7, []))))
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0)
U6_ag(x0)
REACH_IN_GGGG(z2, z0, .(x2, x3), .(z2, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z2, .(z2, z3)), U6_ag(member1_in_ag(x3)))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg)
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z2, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z3, member_out_gg) → REACH_IN_GGGG(z3, z0, .(z1, z2), .(z3, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(.(x5, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_6, .(y_7, []))))
U3_GGGG(z0, .(z1, z2), .(z3, z4), z6, member_out_gg) → REACH_IN_GGGG(z6, z0, .(z1, z2), .(z6, .(z3, z4)))
U2_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(.(x5, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(member_in_gg(x6, .(z0, z4))))
U2_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(x5, .(z0, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg)
U2_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(x5, .(x6, [])))) → U3_GGGG(z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z4, z0, .(x2, x3), .(z4, .(z2, z3))) → U2_GGGG(z0, .(x2, x3), .(z4, .(z2, z3)), U6_ag(member1_in_ag(x3)))
REACH_IN_GGGG(x0, x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x0, x4))) → U2_GGGG(x1, .(.(y_6, .(y_7, [])), x3), .(x0, .(x0, x4)), member1_out_ag(.(y_6, .(y_7, []))))
U3_GGGG(z0, .(.(z1, .(z2, [])), z3), .(z4, z5), z2, member_out_gg) → REACH_IN_GGGG(z2, z0, .(.(z1, .(z2, [])), z3), .(z2, .(z4, z5)))
member_in_gg(H, .(H, L)) → member_out_gg
member_in_gg(X, .(H, L)) → U5_gg(member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H)
member1_in_ag(.(H, L)) → U6_ag(member1_in_ag(L))
U5_gg(member_out_gg) → member_out_gg
U6_ag(member1_out_ag(X)) → member1_out_ag(X)
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
REACH_IN_GGGG(X, Y, Edges, Visited) → U1_GGGG(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Y, Edges, Visited) → MEMBER_IN_GG(.(X, .(Y, [])), Edges)
MEMBER_IN_GG(X, .(H, L)) → U5_GG(X, H, L, member_in_gg(X, L))
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Z, Edges, Visited) → MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
MEMBER1_IN_AG(X, .(H, L)) → U6_AG(X, H, L, member1_in_ag(X, L))
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → MEMBER_IN_GG(Y, Visited)
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_GGGG(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
REACH_IN_GGGG(X, Y, Edges, Visited) → U1_GGGG(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Y, Edges, Visited) → MEMBER_IN_GG(.(X, .(Y, [])), Edges)
MEMBER_IN_GG(X, .(H, L)) → U5_GG(X, H, L, member_in_gg(X, L))
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
REACH_IN_GGGG(X, Z, Edges, Visited) → MEMBER1_IN_AG(.(X, .(Y, [])), Edges)
MEMBER1_IN_AG(X, .(H, L)) → U6_AG(X, H, L, member1_in_ag(X, L))
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → MEMBER_IN_GG(Y, Visited)
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_GGGG(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
MEMBER1_IN_AG(X, .(H, L)) → MEMBER1_IN_AG(X, L)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
MEMBER1_IN_AG(.(H, L)) → MEMBER1_IN_AG(L)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
MEMBER_IN_GG(X, .(H, L)) → MEMBER_IN_GG(X, L)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
reach_in_gggg(X, Y, Edges, Visited) → U1_gggg(X, Y, Edges, Visited, member_in_gg(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U1_gggg(X, Y, Edges, Visited, member_out_gg(.(X, .(Y, [])), Edges)) → reach_out_gggg(X, Y, Edges, Visited)
reach_in_gggg(X, Z, Edges, Visited) → U2_gggg(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
U2_gggg(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_gggg(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_gggg(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → U4_gggg(X, Z, Edges, Visited, reach_in_gggg(Y, Z, Edges, .(Y, Visited)))
U4_gggg(X, Z, Edges, Visited, reach_out_gggg(Y, Z, Edges, .(Y, Visited))) → reach_out_gggg(X, Z, Edges, Visited)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(.(X, .(Y, [])), Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(H, .(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(X, .(H, L)) → U6_ag(X, H, L, member1_in_ag(X, L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(X, H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
U2_GGGG(X, Z, Edges, Visited, member1_out_ag(.(X, .(Y, [])), Edges)) → U3_GGGG(X, Z, Edges, Visited, Y, member_in_gg(Y, Visited))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(Edges))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(y0, y1, y2, .(x1, x2), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x1, x2), x0, U5_gg(x0, x1, x2, member_in_gg(x0, x2)))
U2_GGGG(y0, y1, y2, .(x0, x1), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x0, x1), x0, member_out_gg(x0, .(x0, x1)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
U2_GGGG(y0, y1, y2, .(x1, x2), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x1, x2), x0, U5_gg(x0, x1, x2, member_in_gg(x0, x2)))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(X, Z, Edges, Visited) → U2_GGGG(X, Z, Edges, Visited, member1_in_ag(Edges))
U2_GGGG(y0, y1, y2, .(x0, x1), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x0, x1), x0, member_out_gg(x0, .(x0, x1)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, U6_ag(x0, x1, member1_in_ag(x1)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, member1_out_ag(x0, .(x0, x1)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, U6_ag(x0, x1, member1_in_ag(x1)))
U2_GGGG(y0, y1, y2, .(x1, x2), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x1, x2), x0, U5_gg(x0, x1, x2, member_in_gg(x0, x2)))
U3_GGGG(X, Z, Edges, Visited, Y, member_out_gg(Y, Visited)) → REACH_IN_GGGG(Y, Z, Edges, .(Y, Visited))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, member1_out_ag(x0, .(x0, x1)))
U2_GGGG(y0, y1, y2, .(x0, x1), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x0, x1), x0, member_out_gg(x0, .(x0, x1)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U3_GGGG(z0, z1, z2, .(z3, z4), z3, member_out_gg(z3, .(z3, z4))) → REACH_IN_GGGG(z3, z1, z2, .(z3, .(z3, z4)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, U6_ag(x0, x1, member1_in_ag(x1)))
U2_GGGG(y0, y1, y2, .(x1, x2), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x1, x2), x0, U5_gg(x0, x1, x2, member_in_gg(x0, x2)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, member1_out_ag(x0, .(x0, x1)))
U3_GGGG(z0, z1, z2, .(z3, z4), z3, member_out_gg(z3, .(z3, z4))) → REACH_IN_GGGG(z3, z1, z2, .(z3, .(z3, z4)))
U2_GGGG(y0, y1, y2, .(x0, x1), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x0, x1), x0, member_out_gg(x0, .(x0, x1)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, U6_ag(x0, x1, member1_in_ag(x1)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, member1_out_ag(x0, .(x0, x1)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U3_GGGG(z0, z1, z2, .(z3, z4), z3, member_out_gg(z3, .(z3, z4))) → REACH_IN_GGGG(z3, z1, z2, .(z3, .(z3, z4)))
U2_GGGG(y0, y1, y2, .(x0, x1), member1_out_ag(.(y0, .(x0, [])), y2)) → U3_GGGG(y0, y1, y2, .(x0, x1), x0, member_out_gg(x0, .(x0, x1)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, U6_ag(x0, x1, member1_in_ag(x1)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, member1_out_ag(x0, .(x0, x1)))
U3_GGGG(z0, z1, z2, .(z3, z4), z3, member_out_gg(z3, .(z3, z4))) → REACH_IN_GGGG(z3, z1, z2, .(z3, .(z3, z4)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
REACH_IN_GGGG(y0, y1, .(x0, x1), y3) → U2_GGGG(y0, y1, .(x0, x1), y3, member1_out_ag(x0, .(x0, x1)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U3_GGGG(z0, z1, z2, .(z3, z4), z3, member_out_gg(z3, .(z3, z4))) → REACH_IN_GGGG(z3, z1, z2, .(z3, .(z3, z4)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U3_GGGG(z0, z1, z2, .(z3, z4), z3, member_out_gg(z3, .(z3, z4))) → REACH_IN_GGGG(z3, z1, z2, .(z3, .(z3, z4)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
U3_GGGG(z0, z1, z2, .(z3, z4), z5, member_out_gg(z5, .(z3, z4))) → REACH_IN_GGGG(z5, z1, z2, .(z5, .(z3, z4)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z4), z2, member_out_gg(z2, .(z2, z4))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z4)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x5, [])), .(.(z0, .(x5, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x5, [])), z3), .(x3, x4), x5, U5_gg(x5, x3, x4, member_in_gg(x5, x4)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(z0, z1, .(.(z0, .(x2, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x2, [])), .(.(z0, .(x2, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x2, [])), z3), .(z0, .(z0, z4)), x2, U5_gg(x2, z0, .(z0, z4), member_in_gg(x2, .(z0, z4))))
U2_GGGG(z0, z1, .(.(z0, .(x2, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x2, [])), .(.(z0, .(x2, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x2, [])), z3), .(z0, .(z4, z5)), x2, U5_gg(x2, z0, .(z4, z5), member_in_gg(x2, .(z4, z5))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
U2_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), member1_out_ag(.(z0, .(x3, [])), .(.(z0, .(x3, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x3, [])), z3), .(x3, x4), x3, member_out_gg(x3, .(x3, x4)))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
REACH_IN_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), member1_out_ag(x2, .(x2, x3)))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
REACH_IN_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3)))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)
REACH_IN_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x0, x4))) → U2_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x0, x4)), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ ForwardInstantiation
↳ QDP
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z6, member_out_gg(z6, .(z4, z5))) → REACH_IN_GGGG(z6, z1, .(z2, z3), .(z6, .(z4, z5)))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z4, z5), z2, member_out_gg(z2, .(z4, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z4, z5)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z4, z5)), x6, U5_gg(x6, z0, .(z4, z5), member_in_gg(x6, .(z4, z5))))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
REACH_IN_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4))) → U2_GGGG(z5, z1, .(x2, x3), .(z5, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(.(z0, .(x6, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(x6, [])), z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
REACH_IN_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4))) → U2_GGGG(z3, z1, .(x2, x3), .(z3, .(z3, z4)), U6_ag(x2, x3, member1_in_ag(x3)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(z0, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), z0, member_out_gg(z0, .(z0, .(z0, z4))))
REACH_IN_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x0, x4))) → U2_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x0, x4)), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3)))
U2_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), member1_out_ag(.(z0, .(z0, [])), .(.(z0, .(z0, [])), z3))) → U3_GGGG(z0, z1, .(.(z0, .(z0, [])), z3), .(z0, .(z4, z5)), z0, member_out_gg(z0, .(z0, .(z4, z5))))
REACH_IN_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x4, x5))) → U2_GGGG(x0, x1, .(.(y_2, .(y_3, [])), x3), .(x0, .(x4, x5)), member1_out_ag(.(y_2, .(y_3, [])), .(.(y_2, .(y_3, [])), x3)))
U3_GGGG(z0, z1, .(z2, z3), .(z4, z5), z4, member_out_gg(z4, .(z4, z5))) → REACH_IN_GGGG(z4, z1, .(z2, z3), .(z4, .(z4, z5)))
U2_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), member1_out_ag(.(z0, .(x6, [])), .(z2, z3))) → U3_GGGG(z0, z1, .(z2, z3), .(z0, .(z0, z4)), x6, U5_gg(x6, z0, .(z0, z4), member_in_gg(x6, .(z0, z4))))
U3_GGGG(z0, z1, .(.(z0, .(z2, [])), z3), .(z2, z5), z2, member_out_gg(z2, .(z2, z5))) → REACH_IN_GGGG(z2, z1, .(.(z0, .(z2, [])), z3), .(z2, .(z2, z5)))
member_in_gg(H, .(H, L)) → member_out_gg(H, .(H, L))
member_in_gg(X, .(H, L)) → U5_gg(X, H, L, member_in_gg(X, L))
member1_in_ag(.(H, L)) → member1_out_ag(H, .(H, L))
member1_in_ag(.(H, L)) → U6_ag(H, L, member1_in_ag(L))
U5_gg(X, H, L, member_out_gg(X, L)) → member_out_gg(X, .(H, L))
U6_ag(H, L, member1_out_ag(X, L)) → member1_out_ag(X, .(H, L))
member_in_gg(x0, x1)
member1_in_ag(x0)
U5_gg(x0, x1, x2, x3)
U6_ag(x0, x1, x2)